home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1996 June / Software of the Month Club 1996 June.iso / mac / ISO9660 / DOS / DTP / AURORA / INSTALL.AML < prev    next >
Text File  |  1995-02-24  |  8KB  |  325 lines

  1.  
  2. // ───────────────────────────────────────────────────────────────────
  3. // The Aurora Editor v2.0
  4. // Copyright 1993-1995 nuText Systems. All Rights Reserved Worldwide.
  5. //
  6. // Installation macro
  7. //
  8. // This macro installs all Aurora files to a user-specified path, and
  9. // also prompts the user for an editor style and color palette to use.
  10. // ───────────────────────────────────────────────────────────────────
  11.  
  12.   // compile time macros and function definitions
  13.   include  bootpath "define.aml"
  14.  
  15.   // message strings
  16.   title     = "Installation"
  17.   cancelmsg = "Installation canceled"
  18.   failmsg   = "Installation failed"
  19.   source_path = getpath (getbootpath)
  20.  
  21.   // create installation progress window
  22.   createwindow
  23.   setwinobj
  24.   setframe ">b"
  25.   setcolor  border_color   color white on gray
  26.   setcolor  text_color     color black on gray
  27.   settitle "Aurora v" + getversion + ' ' + title
  28.   setwinctrl '≡'
  29.   sizewindow 1 1  -1 -1 "rd"
  30.   setborder "1i"
  31.   display
  32.  
  33.   // get the install path
  34.   install_path = upcase (ask "Enter installation path:" ''
  35.                          source_path title 'd')
  36.   if not install_path then
  37.     msgbox cancelmsg title
  38.     destroywindow
  39.     return
  40.   end
  41.  
  42.   // add backslash if not present
  43.   if install_path [0] <> "\\" then
  44.     install_path = install_path + "\\"
  45.   end
  46.  
  47.   writestr "Installation path is " + install_path
  48.  
  49.   // check if the install path exists
  50.   if locatefile install_path '' 'd' then
  51.     if (okbox  "Path " + install_path +
  52.                " already exists, install over it?" title) <> "Ok" then
  53.       msgbox cancelmsg title
  54.       destroywindow
  55.       return
  56.     end
  57.  
  58.   // ..if not, then create it
  59.   else
  60.     if (okbox  "Path " + install_path +
  61.                 " is not found, create it?" title) <> "Ok" then
  62.       msgbox cancelmsg title
  63.       destroywindow
  64.       return
  65.     else
  66.       if not createdir install_path then
  67.         msgbox "Can't create path " + install_path + " - " + failmsg  title
  68.         destroywindow
  69.         return
  70.       end
  71.     end
  72.     install_path = getpath (qualify install_path)
  73.   end
  74.  
  75.  
  76.   // create the style menu
  77.   menu "mstyle"
  78.     item " &Aurora"                 "AU"
  79.     item " &Brief"                  "BR"
  80.     item " &QEdit/TSE"              "QE"
  81.     item " Word&Perfect"            "WP"
  82.     item " &WordStar/Borland IDE"   "WS"
  83.   end
  84.  
  85.   // get the editor style
  86.   style = popup "mstyle" "Which editor style would you like to use?"
  87.   destroybuf "mstyle"
  88.   if not style then
  89.     msgbox cancelmsg title
  90.     destroywindow
  91.     return
  92.   end
  93.  
  94.   writeline
  95.   writestr "Editor style is: " + style
  96.   display
  97.  
  98.   // create the color palette menu
  99.   menu "colors"
  100.     item " &Blue and green"   "blugreen"
  101.     item " &Fluorescent"      "fluoresc"
  102.     item " &Green charcoal"   "greench"
  103.     item " &Red and blue"     "redblue"
  104.     item " &Wimbledon"        "wimbledn"
  105.   end
  106.  
  107.   // get the color palette to use
  108.   palette = popup "colors" "Select a color palatte to install" 37
  109.   destroybuf "colors"
  110.   if not palette then
  111.     msgbox cancelmsg title
  112.     destroywindow
  113.     return
  114.   end
  115.  
  116.   writeline
  117.   writestr "Editor color palette is: " + palette
  118.   display
  119.  
  120.   // define all installation directories and files
  121.   databuf "allfiles"
  122.  
  123.     // main files
  124.     "\\"
  125.     "a.exe"
  126.     "a.x"
  127.     "lib.x"
  128.     "install.x"
  129.     "install.aml"
  130.     "color.aml"
  131.     "config.aml"
  132.     "define.aml"
  133.     "ext.aml"
  134.     "file_id.diz"
  135.     "license.doc"
  136.     "main.aml"
  137.     "mouse.aml"
  138.     "orderfrm.doc"
  139.     "read.me"
  140.     "syntax.aml"
  141.     "syntax2.aml"
  142.     "system.aml"
  143.     "tran.aml"
  144.     "vendor.doc"
  145.  
  146.     // doc files
  147.     "doc\\"
  148.     "function.dox"
  149.     "language.dox"
  150.     "quickfun.dox"
  151.     "regexp.dox"
  152.     "tips.dox"
  153.     "user.dox"
  154.  
  155.     // macro files
  156.     "macro\\"
  157.     "calendar.aml"
  158.     "clrchart.aml"
  159.     "countchr.aml"
  160.     "countwrd.aml"
  161.     "delblank.aml"
  162.     "deldup.aml"
  163.     "drawbox.aml"
  164.     "entab.aml"
  165.     "example.aml"
  166.     "fulldate.aml"
  167.     "helplang.aml"
  168.     "helpuser.aml"
  169.     "keycodes.aml"
  170.     "keydef.aml"
  171.     "longline.aml"
  172.     "palette.aml"
  173.     "sumblock.aml"
  174.     "tabs.aml"
  175.     "utility.aml"
  176.     "viewmem.aml"
  177.  
  178.     // palette files
  179.     "palette\\"
  180.     "blugreen.aml"
  181.     "fluoresc.aml"
  182.     "greench.aml"
  183.     "redblue.aml"
  184.     "wimbledn.aml"
  185.  
  186.     // style files
  187.     "style\\"
  188.     "aukbd.aml"
  189.     "aumenu.aml"
  190.     "brkbd.aml"
  191.     "brmenu.aml"
  192.     "qekbd.aml"
  193.     "qemenu.aml"
  194.     "wpkbd.aml"
  195.     "wpmenu.aml"
  196.     "wskbd.aml"
  197.     "wsmenu.aml"
  198.   end
  199.  
  200.   // check for same-path installation
  201.   same_path = source_path == install_path
  202.  
  203.   // copy files
  204.   repeat
  205.     file = gettext
  206.     if file [0] == '\\' then
  207.       if file == '\\' then
  208.         path = if? same_path '' install_path
  209.       else
  210.         path = file
  211.         createdir install_path + path
  212.       end
  213.     elseif path then
  214.       source = qualify file source_path
  215.       if path == install_path then
  216.         dest = qualify file install_path
  217.       else
  218.         if not locatefile source then
  219.           source = qualify file source_path + path
  220.         end
  221.         dest = qualify file install_path + path
  222.       end
  223.  
  224.       writeline
  225.       writestr "Copying " + source + " to " + dest + "..."
  226.       display
  227.  
  228.       if source <> dest then
  229.         if copyfile source dest then
  230.           if same_path then
  231.             deletefile source
  232.           end
  233.         else
  234.           // error copying files
  235.           msgbox "Failed copying " + dest + ", " + failmsg  title
  236.           destroybuf "allfiles"
  237.           destroywindow
  238.           return
  239.         end
  240.       end
  241.  
  242.       // compile external macros
  243.       if path == "macro\\" then
  244.         // compile each macro, skip examples
  245.         if file <> "example.aml" then
  246.           writeline
  247.           writestr "Compiling " + dest + "..."
  248.           display
  249.           error = compilemacro dest dest [1 : (sizeof dest) - 3] + 'X'
  250.           if error then
  251.             msgbox "Error (" + error + ") compiling macro " + dest
  252.           end
  253.         end
  254.       end
  255.     end
  256.   until not down
  257.  
  258.   // destroy the file-list buffer
  259.   destroybuf "allfiles"
  260.  
  261.   // routine to copy style/palette files to the main install path
  262.   function  copys (src_path sfile dfile)
  263.     source = qualify sfile + ".AML" src_path
  264.     dest = qualify dfile + ".AML" install_path
  265.     writeline
  266.     writestr "Copying " + source + " to " + dest
  267.     display
  268.     // make a backup copy
  269.     copyfile dest (qualify dfile + ".OLD" install_path)
  270.     if not copyfile source dest then
  271.       // error copying files
  272.       msgbox "Failed copying " + dest + ", " + failmsg  title
  273.       destroywindow
  274.       return 1
  275.     end
  276.     return
  277.   end
  278.  
  279.   style_path = install_path + "STYLE\\"
  280.  
  281.   // copy keyboard style file
  282.   if copys style_path style + "KBD" "KBD" then
  283.     return
  284.   end
  285.  
  286.   // copy menu style file
  287.   if copys style_path style + "MENU" "MENU" then
  288.     return
  289.   end
  290.  
  291.   // copy color palette file
  292.   if copys install_path + "PALETTE\\"  palette "COLOR" then
  293.     return
  294.   end
  295.  
  296.   writeline
  297.   writestr "Recompiling the Editor..."
  298.   display
  299.  
  300.   // recompile the editor
  301.   save_boot = getbootpath
  302.   setbootpath install_path
  303.   error = regen
  304.   setbootpath save_boot
  305.  
  306.   if error then
  307.     msgbox "Compilation failed, " + failmsg  title
  308.     destroywindow
  309.     return
  310.   else
  311.     writeline
  312.     writestr "*** End of Installation *** "
  313.     display
  314.     msgbox "Installation is complete!  Add " + install_path + " to your PATH."  title
  315.     msgbox "To run Aurora, execute " +
  316.            (qualify "A.EXE" install_path) + " from the DOS command line."
  317.   end
  318.  
  319.   // destroy the installation progress window
  320.   destroywindow
  321.  
  322.   // return the install path if successful
  323.   return install_path
  324.  
  325.